The present invention relates to a speech coder for high quality coding speech signals at low bit rates.
Systems for high quality coding speech signals are well known in the art, as described in, for instance, W. Schroeder and B. Atal., "Code-Excited Linear Prediction: High Quality Speech at Very Low Bit Rates", Proc. ICASSP, pp. 937-940, 1985 (Literature 1), and Kleijn et al., "Improved Speech Quality and Effective Vector Quantization in SELP:, Proc. ICASSP, pp. 155-158, 1988 (Literature 2). In these prior art systems, on the transmitting side spectral parameters representing a spectral characteristic of a speech signal is extracted from the speech signal for each frame (of 20 ms, for instance) by using linear prediction (LPC). The frame is split into a plurality of sub-frames (of 5 ms, for instance), and adaptive codebook parameters (i.e., a delay parameter corresponding to the pitch period and a gain parameter) are extracted for each sub-frame on the basis of a past excitation signal. The sub-frame speech signal is then pitch predicted using the adaptive codebook. The pitch predicted excitation signal is quantized by selecting an optimum excitation vector from an excitation codebook (or vector quantization codebook), which consists of predetermined different types of noise signals, and computing an optimum gain. The optimum excitation code vector is selected such that error power between a synthesized signal from selected noise signals and an error signal is minimized. A multiplexer combines an index representing the type of the selected codevector and a gain, the spectral parameters, and the adaptive codebook parameters, and transmits the multiplexed data to the receiving side for de-multiplexing.
The above prior art process has a problem that the selection of the optimum excitation codevector from the excitation codebook requires a great deal of computation. This is so because in the methods shown in Literatures 1 and 2 the optimum excitation codevector is selected by making filtering or convolution with respect to each of a plurality of codevectors stored in the codebook, that is, executing the filtering or convolution iteratedly a number of times corresponding to the number of the stored codevectors. With bit number of B and degree of N of a codebook, for instance, the filtering or convolution should be executed N.times.K.times.2.sup.B .times.8000/N times per second, where K is the filtering or impulse response length in the filtering or convolution. With B=10, N=40 and K=40, for instance, the necessary computational effort is 81,920,000 times per second, which is very enormous indeed.
To reduce the computational effort that is necessary for the excitation codebook retrieval., various systems have been proposed. Among the proposed systems is an ACELP (Algebraic Code Excited Linear Prediction system, which is described in, for instance, C. Laflamme et al., "16 kbps Wide-Band Speech Coding Technique Based on Algebraic Celp", Proc. ICASSP, pp. 13-16, 1991 (Literature 3). In this system, an excitation signal is represented by a plurality of pulses, and the position of each pulse is represented by a predetermined number of bits that are transmitted. Since the amplitude of each pulse is either "+1.0" or "-1.0", the computational effort for the pulse retrieval can be greatly reduced.
This prior art system described in Literature 3, however, has a problem that the sound quality is not sufficient, although it is possible to obtain great reduction of the computational effort. This is attributable to the fact that each pulse always has the absolute amplitude of "1.0" irrespective of its position and has only either positive or negative in polarity. This means that very coarse amplitude quantization is made, and therefore the sound quality is deteriorated.
Moreover, in the systems described in Literatures 1 to 3, the retrieval of the excitation codebook or pulses is executed under the assumption that the speech signal is multiplied by a fixed gain. Therefore, the performance is deteriorated in the case where the excitation codebook size is reduced by reducing the bit rate or where the number of pulses is small.